/**
 * 运行时配置（插件的配置以及其他的配置）
 */
import { RequestConfig } from './.umi/exports';
//plugin-layout(@ant-design/pro-layout)的配置（需要dom的，在构建时配置无法使用的）
// export const layout = () => {
//   return {
//     // 常用属性
//     title: 'EXAMPLE-UMI4',
//     logo: 'https://img.alicdn.com/tfs/TB1YHEpwUT1gK0jSZFhXXaAtVXa-28-27.svg',
//   };
// };
export const layout = {
  // 常用属性
  title: 'EXAMPLE-UMI4',
  logo: 'https://img.alicdn.com/tfs/TB1YHEpwUT1gK0jSZFhXXaAtVXa-28-27.svg',
  logout: () => {
    console.log('退出登录');
  },
};

//-------------------------------------------------------

//plugin-initial-state的配置（导出的对象是全局状态，通过useModel(@@initialState)使用）
export function getInitialState() {
  return {
    name: 'bxj',
  };
}

//-------------------------------------------------------

// plugin-request的配置(不像umi-request可以在创建实例的时候配置了)
export const request: RequestConfig = {
  timeout: 3000,
  errorConfig: {
    errorHandler(error, options) {
      //异常处理。接收两个参数，一个是catch到的error，第二个参数是request的options
    },
  },
  requestInterceptors: [
    // 第1种写法.函数
    (url, options) => {
      console.log('请求拦截器', url);
      return { url, options };
    },
    // 第2种写法.二元组，第一个元素是request拦截器，第二个元素是错误处理
    [
      (url, options) => {
        return { url, options };
      },
      (error) => {
        return Promise.reject(error);
      },
    ],
    //第3种写法.数组，省略错误处理
    [
      (url, options) => {
        return { url, options };
      },
    ],
  ], // 请求拦截器
  responseInterceptors: [], // 响应拦截器
};
